This will be used in the future.
Adapt all callers to pass GL_NEAREST for now.
texture_id = gsk_gl_driver_create_texture (self, width, height);
gsk_gl_driver_bind_source_texture (self, texture_id);
- gsk_gl_driver_init_texture_empty (self, texture_id);
+ gsk_gl_driver_init_texture_empty (self, texture_id, GL_NEAREST, GL_NEAREST);
render_target = create_render_target (self, texture_id, FALSE, FALSE);
void
gsk_gl_driver_init_texture_empty (GskGLDriver *self,
- int texture_id)
+ int texture_id,
+ int min_filter,
+ int mag_filter)
{
Texture *t;
return;
}
+ t->min_filter = min_filter;
+ t->mag_filter = mag_filter;
+
gsk_gl_driver_set_texture_parameters (self, t->min_filter, t->mag_filter);
if (gdk_gl_context_get_use_es (self->gl_context))
int texture_id);
void gsk_gl_driver_init_texture_empty (GskGLDriver *driver,
- int texture_id);
+ int texture_id,
+ int min_filter,
+ int max_filter);
void gsk_gl_driver_init_texture_with_surface (GskGLDriver *driver,
int texture_id,
cairo_surface_t *surface,
if (atlas->image.texture_id == 0)
{
- gsk_gl_image_create (&atlas->image, self->gl_driver, atlas->width, atlas->height);
+ gsk_gl_image_create (&atlas->image, self->gl_driver, atlas->width, atlas->height, GL_NEAREST, GL_NEAREST);
gdk_gl_context_label_object_printf (gsk_gl_driver_get_gl_context (self->gl_driver),
GL_TEXTURE, atlas->image.texture_id,
"Glyph atlas %d", atlas->image.texture_id);
#include "gskgltextureatlasprivate.h"
#include "gdk/gdktextureprivate.h"
+#include <epoxy/gl.h>
+
#define ATLAS_SIZE (1024)
#define MAX_FRAME_AGE (5 * 60)
#define MAX_UNUSED_RATIO 0.8
/* No atlas has enough space, so create a new one... */
atlas = g_malloc (sizeof (GskGLTextureAtlas));
gsk_gl_texture_atlas_init (atlas, ATLAS_SIZE, ATLAS_SIZE);
- gsk_gl_image_create (&atlas->image, self->gl_driver, atlas->width, atlas->height);
+ gsk_gl_image_create (&atlas->image, self->gl_driver, atlas->width, atlas->height, GL_NEAREST, GL_NEAREST);
/* Pack it onto that one, which surely has enought space... */
gsk_gl_texture_atlas_pack (atlas, twidth + 2, theight + 2, &packed_x, &packed_y);
packed_x += 1;
gsk_gl_image_create (GskGLImage *self,
GskGLDriver *gl_driver,
int width,
- int height)
+ int height,
+ int min_filter,
+ int mag_filter)
{
self->texture_id = gsk_gl_driver_create_texture (gl_driver, width, height);
self->width = width;
self->height = height;
gsk_gl_driver_bind_source_texture (gl_driver, self->texture_id);
- gsk_gl_driver_init_texture_empty (gl_driver, self->texture_id);
+ gsk_gl_driver_init_texture_empty (gl_driver, self->texture_id, min_filter, mag_filter);
gsk_gl_driver_mark_texture_permanent (gl_driver, self->texture_id);
}
void gsk_gl_image_create (GskGLImage *self,
GskGLDriver *gl_driver,
int width,
- int height);
+ int height,
+ int min_filter,
+ int mag_filter);
void gsk_gl_image_destroy (GskGLImage *self,
GskGLDriver *gl_driver);
void gsk_gl_image_write_to_png (const GskGLImage *self,